﻿--
--
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'spZeusUserLogin' AND type = 'P')
BEGIN
  DROP PROCEDURE spZeusUserLogin
END
GO

-- HU - Bejelentkezés
-- EN - Authentication
--
CREATE PROCEDURE spZeusUserLogin
(@Code NVARCHAR(20), @Password NVARCHAR(20))
 AS
BEGIN
  DECLARE
    @Err INTEGER,
    @Rows INTEGER,
    @ID INTEGER,
    @Pswd1 NVARCHAR(40),
    @Pswd2 NVARCHAR(40),
    @Lang NVARCHAR(10)
    
  -- Nyelv megállapítása
  --
  SELECT @Lang = CASE @@LANGUAGE
    WHEN 'magyar' THEN N'HU'
    WHEN 'british' THEN N'EN'
    WHEN 'us_english' THEN N'EN'
    ELSE
      N'HU'
    END
    
  -- Check user
  --      
  SELECT @ID = ID, 
         @Pswd1 = Password
    FROM ZeusUser
   WHERE Code = @Code
   
  SELECT @Rows = @@ROWCOUNT
  
  IF (@Rows != 1) BEGIN

    IF (@Lang = 'HU')
      RAISERROR (N'Bejelentkezés elutasítva !', 16, 1)

    IF (@Lang = 'EN')
      RAISERROR (N'Access denied !', 16, 1)

    GOTO __ERROR__
  END
     
  -- Titkosítva fogjuk összehasonlítani
  --
  SELECT @Pswd2 = CONVERT(NVARCHAR(40), HASHBYTES(N'MD5', CONVERT(NVARCHAR, @Password)), 2)
     
  IF (@Pswd1 != @Pswd2) BEGIN
  
    IF (@Lang = 'HU')
      RAISERROR (N'Bejelentkezés elutasítva !', 16, 1)

    IF (@Lang = 'EN')
      RAISERROR (N'Access denied !', 16, 1)
    GOTO __ERROR__
  END

  -- 
  --
  SELECT ID, Name
    FROM ZeusUser
   WHERE ID = @ID
    
-- Well done.
--
  RETURN(0)

-- We have a problem !
--
__ERROR__:
  RETURN(1)
END
GO
